PVE8.0内核构建支持IOMMU拆分 |
您所在的位置:网站首页 › htpc 控制器 › PVE8.0内核构建支持IOMMU拆分 |
PVE直通SATA控制器给群晖的时候,发现网卡、USB、SATA控制器都在一个IOMMU上。 直通完了,PVE直接失联了。这肯定不行。百度了一下说是要编译内核把IOMMU拆开。下面记录一下编译内核的过程。 准备编译环境我直接用pve物理机编译,怕破坏环境的话,可以建个Ubuntu、Debian虚拟机编译。 首先换国内源,加速依赖安装效率,网上很多教程。 安装编译需要的依赖: apt install devscripts asciidoc-base automake bc bison cpio dh-python bison flex git kmod libdw-dev libelf-dev libiberty-dev libnuma-dev libpve-common-perl libslang2-dev libssl-devlibtool lintian lz4 perl-modules rsync sphinx-common xmlto zlib1g-dev dwarves net-tools htop vnstat上面的依赖不一定全,如果编译的时候遇到找不到模块,再install一下缺的模块就行。 下载PVE内核源码pve-kernel 建议全程挂梯子,不然下载很慢,整个仓库拖下来大概是5个G左右。 找到自己要构建的版本的分支或者commitid。 git clone --recursive https://git.proxmox.com/git/pve-kernel.git # 切换到对应的分支 git checkout 修改补丁文件进入patches/kernel/0004-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch,不同版本名字可能不一样,找ACS-capabilities字样的就可以了。 使用文本编辑工具,或者VIM 打开修改内容。 找到这三行: + if (!pci_is_pcie(dev) || + pci_find_ext_capability(dev, PCI_EXT_CAP_ID_ACS)) + return -ENOTTY;替换成这三行 + if (!pci_is_pcie(dev)) + return -ENOTTY; +替换过程行数不要变。变了的话需要修改git patch文件前面的替换行数信息。 cd到pve-kernel文件夹下,执行make命令就行了。 编译时间看机器性能,我的R5 5600g构建一次需要1个小时的样子。 编译完了就会在当前目录生成几个deb包,使用dpkg -i *.deb就可以安装内核了,安装完重启就行了。 如果是内核降级,还需要去更新GRUB引导配置,这个网上有很多教程。 重启后IOMMU分组已经OK了。 本次构建耗时半天,主要是下载源码花了很多时间,实际构建时间40分钟,下面是构建好的内核版本6.2.16-3. 构建源码commitId:2e2ec4e2833979cfed901c13d1ca7ef4e7f981a0 基于PVE8.0版本内核,修改了IOMMU分组构建。有需要的可以直接下载构建好的包。 链接: https://pan.baidu.com/s/13Mb7zVPncF-7kE61k8xjVQ?pwd=j329 提取码: j329 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |